home *** CD-ROM | disk | FTP | other *** search
-
-
- #ifndef FRMONSTERHUMMER_H
- #define FRMONSTERHUMMER_H
-
- #include "FRCar.h"
-
- class FRMonsterHummer : public FRCar
- {
- TERTTIDeclaration;
-
- public:
-
- FRMonsterHummer(TEVector &rCenter, Float fInitYRot)
- {
- TEOBoundingBox *pOBox = new TEOBoundingBox;
- TEAABoundingBox BBox;
- TEVector Min, Max;
- TEEngine *pEngine = TEEngine::GetEngine();
- TESoundManager* pSound = TESoundManager::GetSoundManager();
- UInt16 usCount;
- TEString Name;
-
- Name = "motor2.ogg";
- m_pMotor = pSound->GetSound(Name);
- Name = "brake.ogg";
- m_pBraking = pSound->GetSound(Name);
- Name = "horn1.ogg";
- m_pHorn = pSound->GetSound(Name);
-
- m_fMass = 3500.0f;
-
- m_fMaxRPM = 5000.0f;
- m_fRotFactor = 105.0f;
-
- m_ulNumGears = 5;
- m_aGears = new FRGearInfo[5];
-
- m_aGears[0].fRPMChange = 3500.0f;
- m_aGears[0].fRPMTrans = -100.0f;
- m_aGears[1].fRPMChange = 4000.0f;
- m_aGears[1].fRPMTrans = 120.0f;
- m_aGears[2].fRPMChange = 3000.0f;
- m_aGears[2].fRPMTrans = 195.0f;
- m_aGears[3].fRPMChange = 500.0f;
- m_aGears[3].fRPMTrans = 270.0f;
- m_aGears[4].fRPMChange = 175.0f;
- m_aGears[4].fRPMTrans = 500.0f;
-
- m_Center = m_OldCenter = rCenter;
- m_Rotation = TEVector(0.0f, fInitYRot, 0.0f);
-
- m_pModelRef = TEModelManager::GetModelManager()->GetModel("monsterhummer.tmf");
- TEAssert(m_pModelRef);
-
- m_pModelRef->SetAnimation(0);
- m_pModelRef->SetTimeScale(0);
- m_pModelRef->SetLoopAnimation(true);
-
- BBox = m_pModelRef->GetModelBBox();
- BBox.GetData(Min, Max);
- m_CarSize = Max - Min;
-
- m_Center.m_fX = m_OldCenter.m_fX = rCenter.m_fX;
- m_Center.m_fY = m_OldCenter.m_fY = m_fDeltaY = TEAbs(Min.m_fY) + 0.05f;
- m_Center.m_fZ = m_OldCenter.m_fZ = rCenter.m_fZ;
-
- pOBox->SetData(m_Center, Min, Max, m_Rotation);
-
- m_pBoundingVolume = pOBox;
-
- m_fFrontAxis = 0.0f;
- m_fRearAxis = -42.0f;
-
- m_fWheelWidth = 9.0f;
- m_fWheelMov = 5.5f;
-
- m_aLightPos[0] = TEVector(-4.0f, 4.0f, 41.25f);
- m_aLightPos[1] = TEVector( 4.0f, 4.0f, 41.25f);
- m_aLightPos[2] = TEVector(-8.5f, 12.5f, -32.0f);
- m_aLightPos[3] = TEVector( 8.5f, 12.5f, -32.0f);
-
- m_fBrakeEfficiency = 14.0f;
-
- UpdateVectors();
-
- if(ms_bSmoke)
- {
- TEVector Center = m_pBoundingVolume->GetCenter();
-
- m_usNumExhaust = 2;
- m_aExhaustPos[0] = TEVector(-5.0f, 0.0f, -43.0f);
- m_aExhaustPos[1] = TEVector( 5.0f, 0.0f, -43.0f);
-
- for(usCount = 0; usCount < m_usNumExhaust; usCount++)
- {
- TEVector Tmp = Center + m_aExhaustPos[usCount].m_fX * m_Right +
- m_aExhaustPos[usCount].m_fY * m_Up + m_aExhaustPos[usCount].m_fZ * m_Forward;
-
- m_aExhaust[usCount] = new TEParticleFX(Tmp, 2, 4, 1.8f, 0, 0, 0, m_Up, 250, 1000,
- 255, 1.0f, true, false);
-
- m_aExhaust[usCount]->SetColor(255, 255, 255);
-
- pEngine->AddParticleSystem(m_aExhaust[usCount]);
- }
- }
-
- if(m_pMotor != NULL)
- m_pMotor->Play3D(m_Center, m_Velocity, TESOUND_LOOP, 1.0f);
- }
- };
-
- #endif